package com.example.dzbsh.dao;

import com.example.dzbsh.model.Renyuan;
import com.example.dzbsh.model.RenyuanExample;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

public interface RenyuanMapper {
    List<Map<String, Object>> FindJigoumaAndDeptname(@Param("deptname") String ppDeptname, @Param("jigoumingchengma") String ppJigoumingchengma);

    Object getCustomCountByDeptId(@Param("deptid") String mmDeptId);

    Object getCustomCountByGuanliDeptId(@Param("deptid") String ppDeptId,@Param("leibieid") String ppRenyuanLeibieId,@Param("jigoumingchengma") String ppJigoumingchengma);

    Object getCustomCountByDeptIdByGuifan(@Param("deptid") String mmDeptId,@Param("leibieid") String ppRenyuanleibieId,@Param("jigoumingchengma") String ppJigoumingchengma);

    List<String> selectRenyuanIdByDeptId(@Param("deptid") String mmDeptId);

    Object getCustomCountByvalid(@Param("deptid") String ppDeptID,@Param("truename") String ppTrueName,
                                 @Param("renyuanleibie") String ppRenyuanleibie,@Param("shuliang") String ppShuliang,@Param("jigoumingchengma") String ppJigoumingchengma,@Param("startindex") int ppStartIndex, @Param("pagesize") int ppPageSize);

    List<Map<String, Object>> findCustomRenyuanByvalid(@Param("deptid") String ppDeptID,@Param("truename") String ppTrueName,
                                                       @Param("renyuanleibie") String ppRenyuanleibie,@Param("shuliang") String ppShuliang,@Param("jigoumingchengma") String ppJigoumingchengma,@Param("paixu") String ppPaixu,@Param("startindex") int ppStartIndex, @Param("pagesize") int ppPageSize);

    List<Map<String, Object>> findByDeptId(@Param("deptid") String ppDeptId,@Param("renyuanleibie") String ppRenyuanleibie,@Param("jigoumingchengma") String ppJigoumingchengma,@Param("paixu") String ppPaixu);

    List<Map<String, Object>> findRenyuanByDeptIdByGuifan(@Param("deptid") String ppDeptId,@Param("renyuanleibie") String ppRenyuanleibieId,@Param("jigoumingchengma") String ppJigoumingchengma,@Param("paixu") String ppPaixu);
    // 查询指定单位的干部信息 带分页
    List<Map<String, Object>> findCustomRenyuanByDeptId(@Param("deptid") String ppDeptId,@Param("leibie") String ppRenyuanleibieId,
                                                        @Param("jigoumingchengma") String ppJigoumingchengma, @Param("paixu") String ppPaixu,
                                                        @Param("startindex") int ppStartIndex, @Param("pagesize") int ppPageSize);

    List<Map<String, Object>> findCustomRenyuanByDeptIdByGuifan(@Param("deptid") String ppDeptId,@Param("leibie") String ppRenyuanleibieId,
                                                                @Param("jigoumingchengma") String ppJigoumingchengma, @Param("paixu") String ppPaixu,
                                                                @Param("startindex") int ppStartIndex, @Param("pagesize") int ppPageSize);

    Object getCountByJunxianAndCengji(@Param("renyuanleibie") String ppRenyuanleibie,@Param("junxiandengji") String ppJunxiandengji,@Param("zhiwucengji") String ppZhiwucengji,
                                      @Param("deptid") String ppDeptId,@Param("shifoujingshang") String ppShifoujingshang);

    Object getGuifanCountByJunxianAndCengjiAndTuichuLeixing(@Param("renyuanleibie") String ppRenyuanleibie,@Param("junxiandengji") String ppJunxiandengji,@Param("zhiwucengji") String ppZhiwucengji,
                                                            @Param("deptid") String ppDeptId,@Param("tuichuleixing") int ppTuichuleixing);

    Object getCountByzhuangtai();

    List<Map<String,Object>> selectValid();

    List<String> selectZhengjianhaomaList();

    List<String> selectRenyuanIdList();

    List<Map<String, Object>> findRenyuanByvalid(@Param("startindex")int ppPageIndex, @Param("pagesize")int ppPageSize);

    List<Map<String, Object>> isZhengjianhaomaExist(@Param("zhengjianhaoma")String ppZhengjianhaoma);

    List<String> findAllZhengjianhaoma();

    List<String> selectDepNameByValid();

    int countByExample(RenyuanExample example);

    int deleteByExample(RenyuanExample example);

    int deleteByPrimaryKey(String renyuanid);

    int insert(Renyuan record);

    int insertSelective(Renyuan record);

    List<Renyuan> selectByExample(RenyuanExample example);

    Renyuan selectByPrimaryKey(String renyuanid);

    int updateByExampleSelective(@Param("record") Renyuan record, @Param("example") RenyuanExample example);

    int updateByExample(@Param("record") Renyuan record, @Param("example") RenyuanExample example);

    int updateByPrimaryKeySelective(Renyuan record);

    int updateByPrimaryKey(Renyuan record);
}